export const 음가가_없는_자음 = 'ㅇ';

export const 한글_자모 = ['기역', '니은', '리을', '미음', '비읍', '시옷', '이응'] as const;
export const 특별한_한글_자모 = ['디귿', '지읒', '치읓', '키읔', '티읕', '피읖', '히읗'] as const;
export const 특별한_한글_자모의_발음 = {
  ㄷ: 'ㅅ',
  ㅈ: 'ㅅ',
  ㅊ: 'ㅅ',
  ㅌ: 'ㅅ',
  ㅎ: 'ㅅ',
  ㅋ: 'ㄱ',
  ㅍ: 'ㅂ',
} as const;

// 17항
export const 음의_동화_받침 = {
  ㄷ: 'ㅈ',
  ㅌ: 'ㅊ',
  ㄹㅌ: 'ㅊ',
} as const;

// 'ㄴ,ㄹ'이 덧나는 동화작용
export const ㄴㄹ이_덧나는_모음 = ['ㅏ', 'ㅐ', 'ㅓ', 'ㅔ', 'ㅗ', 'ㅜ', 'ㅟ']; // 모음의 ∙(아래아)가 하나일 경우
export const ㄴㄹ이_덧나는_후속음절_모음 = ['ㅑ', 'ㅕ', 'ㅛ', 'ㅠ', 'ㅣ', 'ㅒ', 'ㅖ'] as const;
export const ㄴㄹ이_덧나서_받침_ㄴ_변환 = ['ㄱ', 'ㄴ', 'ㄷ', 'ㅁ', 'ㅂ', 'ㅇ'] as const;
export const ㄴㄹ이_덧나서_받침_ㄹ_변환 = ['ㄹ'] as const;

// 19항
export const 자음동화_받침_ㄴ_변환 = ['ㅁ', 'ㅇ', 'ㄱ', 'ㅂ'] as const;

// 18항
export const 비음화_받침_ㅇ_변환 = ['ㄱ', 'ㄲ', 'ㅋ', 'ㄱㅅ', 'ㄹㄱ'] as const;
export const 비음화_받침_ㄴ_변환 = ['ㄷ', 'ㅅ', 'ㅆ', 'ㅈ', 'ㅊ', 'ㅌ', 'ㅎ'] as const;
export const 비음화_받침_ㅁ_변환 = ['ㅂ', 'ㅍ', 'ㄹㅂ', 'ㄹㅍ', 'ㅂㅅ'] as const;

// 12항
export const 발음변환_받침_ㅎ = ['ㅎ', 'ㄴㅎ', 'ㄹㅎ'] as const;
export const 발음변환_받침_ㅎ_발음 = {
  ㄱ: 'ㅋ',
  ㄷ: 'ㅌ',
  ㅈ: 'ㅊ',
  ㅅ: 'ㅆ',
} as const;
export const 발음변환_첫소리_ㅎ = ['ㄱ', 'ㄹㄱ', 'ㄷ', 'ㅂ', 'ㄹㅂ', 'ㅈ', 'ㄴㅈ'] as const;
export const 발음변환_첫소리_ㅎ_발음 = {
  ㄱ: 'ㅋ',
  ㄹㄱ: 'ㅋ',
  ㄷ: 'ㅌ',
  ㅂ: 'ㅍ',
  ㄹㅂ: 'ㅍ',
  ㅈ: 'ㅊ',
  ㄴㅈ: 'ㅊ',
} as const;

// 9항, 10항, 11항
export const 받침_대표음_발음 = {
  ㄲ: 'ㄱ',
  ㅋ: 'ㄱ',
  ㄱㅅ: 'ㄱ',
  ㄹㄱ: 'ㄱ',
  ㅅ: 'ㄷ',
  ㅆ: 'ㄷ',
  ㅈ: 'ㄷ',
  ㅊ: 'ㄷ',
  ㅌ: 'ㄷ',
  ㅍ: 'ㅂ',
  ㅂㅅ: 'ㅂ',
  ㄹㅍ: 'ㅂ',
  ㄴㅈ: 'ㄴ',
  ㄹㅂ: 'ㄹ',
  ㄹㅅ: 'ㄹ',
  ㄹㅌ: 'ㄹ',
  ㄹㅁ: 'ㅁ',
} as const;

export const 된소리 = {
  ㄱ: 'ㄲ',
  ㄷ: 'ㄸ',
  ㅂ: 'ㅃ',
  ㅅ: 'ㅆ',
  ㅈ: 'ㅉ',
} as const;

// 23항
export const 된소리_받침 = [
  'ㄱ',
  'ㄲ',
  'ㅋ',
  'ㄱㅅ',
  'ㄹㄱ',
  'ㄷ',
  'ㅅ',
  'ㅆ',
  'ㅈ',
  'ㅊ',
  'ㅌ',
  'ㅂ',
  'ㅍ',
  'ㄹㅂ',
  'ㄹㅍ',
  'ㅂㅅ',
] as const;

// 24항, 25항
export const 어간_받침 = ['ㄴ', 'ㄴㅈ', 'ㅁ', 'ㄹㅁ', 'ㄹㅂ', 'ㄹㅌ'] as const;

/**
 * @description 'ㄹㅁ'과 같은 복합 받침은 발음 과정에서 단순화될 수 있다.
 * @see {@link https://encykorea.aks.ac.kr/Article/E0074523 자음군 단순화 설명 링크}
 */
export const 자음군_단순화 = [
  'ㄹㅁ',
  'ㄱㅅ',
  'ㄹㄱ',
  'ㄹㅂ',
  'ㄹㅅ',
  'ㅂㅅ',
  'ㄴㅈ',
  'ㄴㅎ',
  'ㄹㅌ',
  'ㄹㅍ',
  'ㄹㅎ',
] as const;

export const 자음군_단순화_결과 = {
  ㄱㅅ: 'ㄱ',
  ㄴㅈ: 'ㄴ',
  ㄴㅎ: 'ㄴ',
  ㄹㄱ: 'ㄱ',
  ㄹㅁ: 'ㅁ',
  ㄹㅂ: 'ㄹ', // 상황에 따라 'ㅂ'이 남기도 하지만, 기본은 'ㄹ'로 정리
  ㄹㅅ: 'ㄹ',
  ㄹㅌ: 'ㄹ',
  ㄹㅍ: 'ㄹ',
  ㄹㅎ: 'ㄹ',
  ㅂㅅ: 'ㅂ',
} as const;
